// -*- coding: utf-8 -*-
#include <iostream>
#include <stdlib.h>

#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>

#include <ros/node_handle.h>
#include <ros/master.h>
#include <ros/ros.h>

#include <list>
#include <boost/shared_ptr.hpp>

#include <image_transport/image_transport.h>
#include <cv_bridge/cv_bridge.h>
#include <sensor_msgs/image_encodings.h>
#include <sensor_msgs/PointCloud.h>
#include <sensor_msgs/PointCloud2.h>
#include <sensor_msgs/Image.h>
#include <geometry_msgs/PointStamped.h>
#include <image_geometry/pinhole_camera_model.h>
#include <boost/foreach.hpp>

#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/kdtree/kdtree.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl_ros/publisher.h>
#include <pcl_ros/transforms.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>

/// \brief ROSノード
class SavePCDNode
{
 public:
  virtual ~SavePCDNode() {}
    
};

typedef boost::shared_ptr<SavePCDNode> SavePCDNodePtr;
/// \brief DetectEllipseNodeの実装クラスを作成する
SavePCDNodePtr CreateSavePCDNode();
